'''
封装相关题目
银行账户类
创建一个BankAccount类，要求：
私有属性：账户余额(__balance)
公有方法：存款(deposit)、取款(withdraw)、查看余额(get_balance)
取款时如果余额不足应提示
添加账户持有人姓名属性，并在初始化时设置
'''
# class BankAccount():
#     __balance = 500
#
#     def deposit(self,money):
#         self.__class__.__balance +=money
#         print('存款{}，当前余额：{}'.format(money,self.__balance))
#
#     def withdraw(self,money):
#         if self.__balance >=money:
#             self.__balance-=money
#             print('取了{}元，当前余额：{}'.format(money,self.__balance))
#         else:
#             print('余额不足，取不了奥')
#
#     def get_balance(self):
#         print('当前余额：{}'.format(self.__balance))
#
# bank = BankAccount()
# bank.deposit(100)
# bank.withdraw(700)
# bank.get_balance()

'''
温度转换类
设计一个Temperature类：
私有属性存储摄氏温度
提供方法获取华氏温度(公式：F = C × 9/5 + 32)
提供方法获取开氏温度(公式：K = C + 273.15)
使用属性装饰器(@property)实现
'''
# class Temperature():
#     def __init__(self,c):
#         self.__c = c
#     def get_hua(self):
#         f = self.__c*(9/5)+32
#         print('华氏温度:',f)
#
#     def get_kai(self):
#         k = self.__c+273.15
#         print('开氏温度')

'''
学生信息封装
创建Student类：
私有属性：姓名、学号、成绩列表
方法：添加成绩、计算平均分、获取最高分
绩列表，只能通过方法添加
'''

# class Student():
#     def __init__(self,name,sid):
#         self.__name=name
#         self.__sid=sid
#         self.__score=[]
#
#     def add_score(self,l):
#         self.__score.extend(l)
#
#     def average(self):
#         avg = sum(self.__score) / len(self.__score)
#         return avg
#
#     def get_max(self):
#         m = max(self.__score)
#         return m
#
#
# s1 = Student('lisi',1001)
# l = [76,81,88,92,96]
# s1.add_score(l)
# print(s1.get_max())
# print(s1.average())


'''
继承相关题目
图形类继承
创建基类Shape，有方法area()和perimeter()
派生Rectangle和Circle类实现这两个方法
添加Square类继承自Rectangle
'''
# class Shape():
#
#     def area(self):
#         print('父类area')
#
#     def perimeter(self):
#         print("父类perimeter")
#
# class Rectangle(Shape):
#     pass
#
# class Circle(Shape):
#     pass
#
#
# re = Rectangle()
# re.area()
#
# c = Circle()
# c.perimeter()

'''
员工管理系统
基类Employee：姓名、员工ID、基本工资
派生Manager：有奖金属性，计算总工资(基本工资+奖金)
派生Developer：有编程语言属性，加班工资计算方法
派生Intern：无额外属性，工资为基本工资的80%
'''


'''
动物继承体系
基类Animal：名称、年龄，方法make_sound()
派生Dog、Cat、Bird类，重写make_sound()
添加Zoo类管理多个动物
'''


'''
支付系统多态
创建抽象基类PaymentMethod，要求子类实现process_payment(amount)
实现CreditCard、PayPal、BankTransfer三种支付方式
编写函数checkout(payment_method, amount)演示多态
'''
class PaymentMethod():
    def process_payment(self,amount):
        pass


'''
绘图程序
基类Graphic有抽象方法draw()
派生Circle、Rectangle、Triangle实现draw()
创建列表包含不同图形对象，循环调用它们的draw()
'''

'''
游戏角色系统
基类Character有attack()方法
派生Warrior、Mage、Archer实现不同的攻击方式
编写战斗函数接受两个角色对象，调用它们的attack()
'''